/*
连接数据库函数
*/

const mongoose = require('mongoose')
const UserModel = require('./models/UserModel')
const md5 = require('md5')

module.exports = () => {
  // mongoose.connect返回的是一个promise对象
  const promise = mongoose.connect('mongodb://localhost:27017/user_manage')

  // 绑定链接成功和失败的监听，并给出提示
  mongoose.connection.on('open', async () => {
    console.log('连接数据库成功')

    /* 
    连接数据库成功后, 立即插入一个用户: admin/111111
    查询admin用户, 如果没有才插入
    */

    const user = await UserModel.findOne({ username: 'admin' })
    console.log('user', user)
    if (!user) {
      UserModel.create({
        username: 'admin',
        pwd: md5('111111'),
        profile: '/admin.png'
      })
    }
    // for (let index = 0; index < 20; index++) {
    //   UserModel.create({
    //     username: 'wh2201516-' + (index + 1),
    //     pwd: md5('111111'),
    //     profile: '/upload/admin.png'
    //   })
    // }
  })
  mongoose.connection.on('error', () => {
    console.log('连接数据库失败')
  })

  // 返回promise，给app.js调用，来获取连接数据库的状态
  return promise
}